home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / FCOPY31.ARJ / COPYTEST.C < prev    next >
C/C++ Source or Header  |  1992-05-12  |  3KB  |  71 lines

  1. /*  This is a short program demonstrating the fcopy function.  It
  2.     prompts the user for source and target filenames and then performs
  3.     the copy.  If an error occurred during the copy operation, an error
  4.     message is displayed.
  5.  
  6.     Written by Ray Waters */
  7.  
  8. #include <io.h>
  9. #include <stdio.h>
  10. #include <string.h>
  11. #include <errno.h>
  12. #include "fcopy.h"
  13.  
  14. main()
  15. {
  16.     char SrcName[80];                   /* buffer for source filename */
  17.     char TgtName[80];                   /* buffer for target filename */
  18.     register int count = 0;
  19.     int InputError;
  20.  
  21.     printf("\nDemonstration of fcopy function:\n");
  22.  
  23.     for (;;) {
  24.         do {
  25.             printf("\n  Enter the SOURCE file name:  ");
  26.             gets(SrcName);                      /* get source filename */
  27.             if (!*SrcName) {                    /* exit if nothing entered */
  28.                 printf("\nDemonstration terminated by user\n");
  29.                 return 0;
  30.             }
  31.  
  32.             InputError = access(SrcName, 0);    /* see if source exists */
  33.             if (InputError) {
  34.                 count++;
  35.                 if (count > 2) {                /* give them up to 3 tries */
  36.                     fprintf(stderr, "\nDemonstration terminated: "
  37.                                     "Too many input errors\n");
  38.                     return -1;
  39.                 }
  40.                 perror("\nINPUT ERROR");        /* if not, display error */
  41.             }
  42.         }
  43.         while (InputError);                     /* and try again */
  44.  
  45.         printf("\n  Enter the TARGET file name:  ");
  46.         gets(TgtName);                          /* get target filename */
  47.         if (!*TgtName) {                        /* exit if nothing entered */
  48.             printf("\nDemonstration terminated by user\n");
  49.             return 0;
  50.         }
  51.  
  52.         if (!fcopy(SrcName, TgtName)) {     /* perform the file copy */
  53.                                             /* if successful, */
  54.             strupr(SrcName);                /* fold file names to upper case */
  55.             strupr(TgtName);
  56.             printf("\nSUCCESS: Copied %s to %s\n", SrcName, TgtName);
  57.         }
  58.  
  59.         else switch (errno) {   /* on error, display appropriate message */
  60.             case DISKFUL:
  61.                 fprintf(stderr, "\nFCOPY ERROR: Target disk full\n");
  62.                 if (!remove(TgtName))       /* try to delete bad target file */
  63.                     printf("Target file %s deleted\n", TgtName);
  64.                 break;
  65.             default:                    /* message depends upon errno */
  66.                 perror("\nFCOPY ERROR");
  67.                 break;
  68.         }
  69.     }
  70. }
  71.